package com.telrob.bytevm.compile;

import java.util.List;

import com.telrob.bytevm.vm.Register;

public interface Instruct {
	/***
	 * 是否为伪指令
	 * @param opt
	 * @return
	 */
	boolean isPseudo(String opt);
	/***
	 * 是否编译
	 * @param opt
	 * @return
	 */
	boolean isComplie(String opt);
	/**
	 * 将指令编译成机器码
	 * @param param 第一个参数是操作指令
	 * @return
	 */
	byte[]complie(String line,String[]param,int curretIndex,List<ReplaceCode>labelReplace);
	
	/***
	 * s是否为可执行指令
	 * @param opt 指令码
	 * @return 该条指令后续需要操作多少数据
	 */
	int isRun(byte opt);
	/***
	 * 开始接续并允许
	 * @param R
	 * @param opt
	 * @param param
	 */
	void parseRun(Register R,byte opt,byte[]code);
}
